#!/bin/bash

# 获取当前脚本的目录
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"

# 定义 clean_logs.py 脚本的完整路径
# 假设 clean_logs.py 在 scripts 目录下，且 setup_clean_logs_cron.sh 也在 scripts 目录下
PYTHON_SCRIPT="$SCRIPT_DIR/clean_logs.py"
# 如果 clean_logs.py 在项目根目录的 scripts/clean_logs.py，而此脚本在项目根目录，则可以使用以下路径：
# PYTHON_SCRIPT="$SCRIPT_DIR/scripts/clean_logs.py" # 根据实际情况调整

# 查找 python3 解释器的路径
PYTHON_EXECUTABLE=$(which python3)

# 如果没有找到 python3，尝试默认路径
if [ -z "$PYTHON_EXECUTABLE" ]; then
    echo "警告：未在 PATH 中找到 python3。尝试使用默认路径 /usr/bin/python3。"
    PYTHON_EXECUTABLE="/usr/bin/python3"
    # 再次检查默认路径是否存在
    if [ ! -f "$PYTHON_EXECUTABLE" ]; then
        echo "错误：未能找到 Python 3 解释器。请手动指定或确保它在 PATH 中。"
        exit 1
    fi
fi

# 定义 cron 作业的输出日志文件路径
CRON_LOG_FILE="/var/log/clean_logs_cron.log"

# cron 作业的命令
CRON_JOB_COMMAND="$PYTHON_EXECUTABLE $PYTHON_SCRIPT >> $CRON_LOG_FILE 2>&1"
# cron 表达式，表示每天午夜 00:00 执行
CRON_SCHEDULE="0 0 * * *"

# 完整的 cron 行
CRON_LINE="$CRON_SCHEDULE $CRON_JOB_COMMAND"

echo "=========================================="
echo "尝试设置 clean_logs.py 的 Cron 作业"
echo "Python 脚本路径: $PYTHON_SCRIPT"
echo "Python 解释器路径: $PYTHON_EXECUTABLE"
echo "Cron 日志文件路径: $CRON_LOG_FILE"
echo "Cron 作业行: $CRON_LINE"
echo "=========================================="

# 检查 cron 作业是否已经存在
(crontab -l 2>/dev/null | grep -F "$CRON_LINE")
if [ $? -eq 0 ]; then
    echo "Cron 作业已存在，无需重复添加。"
else
    # 将新的 cron 作业添加到现有 cron 表中
    (crontab -l 2>/dev/null; echo "$CRON_LINE") | crontab -
    if [ $? -eq 0 ]; then
        echo "Cron 作业已成功添加。"
        echo "您可以使用 'crontab -l' 命令来验证。"
        echo "脚本将在每天午夜自动运行。"
        echo "脚本输出和错误将写入 $CRON_LOG_FILE"
    else
        echo "错误：添加 Cron 作业失败。请检查权限或手动添加。"
    fi
fi

echo "设置完成。" 